package com.yijumao.shop.domain;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author konley
 * @date 2020-11-15 14:41
 * 购物车
 */
public class Cart implements Serializable {
    //购物项的map集合
    private Map<Integer,CartItem> cartItems = new LinkedHashMap<>();
    //总价
    private double total ;

    //添加购物项的方法
    public void addCartItem(CartItem cartItem){
        //获取要添加的购物项的商品id
        Integer id = cartItem.getItem().getId();
        //判断是否已经存在
        if(cartItems.containsKey(id)){
            //如果存在 更新该项的数量
            CartItem cartItem_old = cartItems.get(id);
            cartItem_old.setCount(cartItem_old.getCount()+cartItem.getCount());
        }else{
            //如果不存在 直接添加
            cartItems.put(id,cartItem);
        }
        //更新总价
        total = total + cartItem.getSubtotal();
    }

    //删除购物项的功能
    public void delete(Integer id){
        CartItem remove = cartItems.remove(id);
        //更新总价
        total = total - remove.getSubtotal();
    }

    //清空购物车的功能
    public void clear(){
        cartItems.clear();
        total = 0.0;
    }


    public Map<Integer, CartItem> getCartItems() {
        return cartItems;
    }

    public void setCartItems(Map<Integer, CartItem> cartItems) {
        this.cartItems = cartItems;
    }

    public Double getTotal() {
        return total;
    }

    public void setTotal(Double total) {
        this.total = total;
    }
}
